﻿
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Runtime.Serialization;
using System.Text;
using System.Threading.Tasks;

namespace M2B.GestionEntretiens.POCOS
{

    /// <summary>
    /// Cette Classe décrit un Test
    /// </summary>
    /// <remarks>
    /// Informations de la classe : 
    /// <list type="bullet">
    /// <item name="authors">Auteur : M2B : Bilel / Maher SAMMARI</item>
    /// <item name="creation date">Date de création : 01/04/2014</item>
    /// <item name="last modification">Date de dernière modification : 01/04/2014</item>
    /// </list>
    /// </remarks>
    [DataContract(IsReference = true)]
    public class Test
    {
        #region Properties
        /// <summary>
        /// Identificateur
        /// </summary>
        [DataMember]
        public int TestId { get; set; }
        /// <summary>
        /// Libelle
        /// </summary>
        [DataMember]
        [Required]
        public string Libelle { get; set; }
        /// <summary>
        /// Description
        /// </summary>
        [DataMember]
        [Required]
        public string Description { get; set; }
        /// <summary>
        /// Type du test (Basique, sécurité, développement, réflexion, déployement,...)
        /// </summary>
        [DataMember]
        public int Type { get; set; }
        /// <summary>
        /// Date du test
        /// </summary>
         [DataMember]
        public DateTime? DateTest { get; set; }
        /// <summary>
        /// Temps nécessaire en minute
        /// </summary>
        [DataMember]
        public int Duree { get; set; }
        /// <summary>
        /// Date création
        /// </summary>
        [DataMember]
        public DateTime? DateCreation { get; set; }
        /// <summary>
        /// Date Modification
        /// </summary>
        [DataMember]
        public DateTime? DateModification { get; set; }
        /// <summary>
        /// Commentaire
        /// </summary>
        [DataMember]
        public string Commentaire { get; set; }
        /// <summary>
        /// Evaluation de la difficulté du test
        /// </summary>
        [DataMember]
        public int Evaluation { get; set; }
        /// <summary>
        /// Autre information
        /// </summary>
        [DataMember]
        public int Autre { get; set; }
        /// <summary>
        /// La liste des questions du test
        /// </summary>
        [DataMember]
        public virtual List<TestQuestion> TestQuestions { get; set; }
        #endregion



        #region Constructeurs
        /// <summary>
        /// Constructeur par défault
        /// </summary>
        public Test()
        {
            TestQuestions = new HashSet<TestQuestion>().ToList();
        }
        #endregion
    }
}
